/*
 * @Author: 朱泽源 zhuzy@phxg.cn
 * @Date: 2024-04-30 14:48:50
 * @LastEditors: 朱泽源 zhuzy@phxg.cn
 * @LastEditTime: 2024-04-30 16:12:40
 * @FilePath: \active\webpack.config.js
 * @Description: 
 * 
 * Copyright (c) 2024 by 朱泽源 , All Rights Reserved. 
 */
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');

module.exports = {
    entry: './src/index.js',//入口
    mode: 'development',//模式
    devtool: 'source-map',//生成source-map
    devServer:{
        port:3000
    },
    output:{//清除输出目录
        clean:true
    },
    plugins:[//配置插件
        new HtmlWebpackPlugin(),
        new ModuleFederationPlugin({
            remotes:{
                // key 自定义远程暴露的联邦名
                // 比如abc 之后引用该模块需要使用 import "abc/模块名"
                // value 模块联邦名@模块联邦相访问地址
                home: "home@http://localhost:8080/home-entry.js"
            },
            //模块联邦名称
            // 该名称将成为一个全部变量 通过该变量可获取在模块联邦中暴露的模块。
            name: "active",
            // 生成的文件名 全部变量将导入到该文件中。
            filename: "active-entry.js",
            exposes: {
                // key 模块联邦相对路径
                // value 模块具体路径
                './news': './src/news.js'
            }, 
            shared: {
                // jquery 模块共享
                "jquery": {
                    singleton: true
                }
            }
        })
    ]
}